/*
 * $RCSfile: RoomPersion.java,v $
 * $Revision: 1.1  $
 * $Date: 2012-8-14  $
 *
 * Copyright (C) 2005 Bettem, Inc. All rights reserved.
 *
 * This software is the proprietary information of Bettem, Inc.
 * Use is subject to license terms.
 */
package com.dzpk.gameserver.module.main.room;

import com.dzpk.gameserver.module.main.UserInfo;
import com.dzpk.gameserver.module.main.cards.Card;
import com.dzpk.gameserver.module.main.pocer.Pocer;

import java.util.ArrayList;
import java.util.List;


/**
 * 玩家人
 * <p>Title: RoomPersion</p> 
 * <p>Description: </p> 
 * <p>Copyright: Copyright (c) 2006</p> 
 * @author shenxing.ruan
 * @version 1.0
 */
public class RoomPersion {
	private long userId;
	private int chouma = 0;//进入游戏时携带的筹码数量 即是总共的 每次添加筹码是减少 (未和数据库同步)每次添加筹码时同步

	private int nowcounma = 0;//当前剩余筹码量 每次下注后减少 每局结束增加 //比赛房间固定为2000
	private int betChouma = 0;//已经下注的筹码
	private Pocer[] pocers = new Pocer[2]; //玩家的两张牌
	private int status = 0; //玩家当前状态 0准备下注/或开始状态  1让牌     2下注 3全下    -1掉线托管  -2第二次拖/或者最后一次发牌掉线()    -3弃牌()
	private int clientStatus = 0;//1:下注  2:跟注  3:加注  4:全下 5:让牌  6:弃牌 7托管  

	private int type = 1;//玩家状态 1观看 2准备下一次进入  3游戏中 4坐下状态
	private long time;//倒计时开始时间
	private int size = -999; //玩家座位号 0 ~7

	private int betStatus = 0; //0 等待下注     1下注并且比上次betChouma有增加     2筹码没有增加
	private int anteNumber = 0; //下注筹码数 指的是最后一次下注的筹码数量

	private Pocer[] zuidaPocers = new Pocer[5]; //最后一轮最大牌的那5张牌
	private int pocerType;//最大5张牌的类型 ////最后一轮最大牌 类型

	private int yq; //最后一轮赢了多少筹码

	private int onlinerType = 1;//在线状态 1在线 -1 掉线做T掉处理

	//最后一轮下来多少筹码
	private int lastChouma;
	//最后一轮是否已经扣了筹码
	private int chouchuStatus = 0; //0表示以后 其它表示还要扣多少

	private int anteCount; //本轮已经下了多少注

	private int ys = -1; //最后一盘是赢还是输 -1 输 1赢

	private int zdlk = -1;//-1 表示非主动离开 ..其它表示主动离开

	private long addUpTime;//记录一盘游戏进行时间
	private int at; //时间
	private int ac;//当天累计局数
	private int wc;//连赢次数
	private long addUpTimeLeiji = 0;//倒计时累计时间
	private int isGame = -999;

	private int upChuPai; // 机器人上一次出牌类型

	private int upLun;    // 机器人上一次出牌是第几轮出牌

	private int isdel; // -99 已经离开的玩家

	private long liwuTime1 = 0; //赠送筹码时间控制
	private long liwuTime2 = 0; //道具间隔时间控制



	private UserInfo userInfo;

	private PersionChipBind perisonChipBind = new PersionChipBind();

	private List<Card> holeCards = new ArrayList<Card>();

	public long getLiwuTime1() {
		return liwuTime1;
	}
	public void setLiwuTime1(long liwuTime1) {
		this.liwuTime1 = liwuTime1;
	}
	public long getLiwuTime2() {
		return liwuTime2;
	}
	public void setLiwuTime2(long liwuTime2) {
		this.liwuTime2 = liwuTime2;
	}
	public void putHoleCard(Card c) {
		this.holeCards.add(c);
	}
	public void clearHoleCards() {
		this.holeCards.clear();
	}
	public List<Card> getHoleCards() {
		return this.holeCards;
	}

	public int getIsdel() {
		return isdel;
	}
	public void setIsdel(int isdel) {
		this.isdel = isdel;
	}
	public PersionChipBind getPerisonChipBind() {
		return perisonChipBind;
	}
	public void setPerisonChipBind(PersionChipBind perisonChipBind) {
		this.perisonChipBind = perisonChipBind;
	}
	public int getUpChuPai() {
		return upChuPai;
	}
	public void setUpChuPai(int upChuPai) {
		this.upChuPai = upChuPai;
	}
	public int getUpLun() {
		return upLun;
	}
	public void setUpLun(int upLun) {
		this.upLun = upLun;
	}
	public long getAddUpTimeLeiji() {
		return addUpTimeLeiji;
	}
	public void setAddUpTimeLeiji(long addUpTimeLeiji) {
		this.addUpTimeLeiji = addUpTimeLeiji;
	}
	public long getAddUpTime() {
		return addUpTime;
	}
	public void setAddUpTime(long addUpTime) {
		this.addUpTime = addUpTime;
	}
	public long getUserId() {
		return userId;
	}
	public void setUserId(long userId) {
		this.userId = userId;
	}

	public int getIsGame() {
		return isGame;
	}
	/**
	 * 玩过游戏....>0 1
	 * @param isGame
	 */
	public void setIsGame(int isGame) {
		this.isGame = isGame;
	}
	public int getAt() {
		return at;
	}
	public void setAt(int at) {
		this.at = at;
	}
	public int getAc() {
		return ac;
	}
	public void setAc(int ac) {
		this.ac = ac;
	}
	public int getWc() {
		return wc;
	}
	public void setWc(int wc) {
		this.wc = wc;
	}
	/**
	 * 进入游戏时携带的筹码数量
	 * @return
	 */
	public int getChouma() {
		return chouma;
	}
	/**
	 * 进入游戏时携带的筹码数量 即是总共的 添加到nowcounma做减去操作
	 * @return
	 */
	public synchronized void setChouma(int chouma) {
		this.chouma = chouma;
	}
	/**
	 * //当前剩余筹码量
	 * @return
	 */
	public int getNowcounma() {
		return nowcounma;
	}
	/**
	 * //当前剩余筹码量
	 * @return
	 */
	public void setNowcounma(int nowcounma) {
		this.nowcounma = nowcounma;
	}
	public Pocer[] getPocers() {
		return pocers;
	}
	public void setPocers(Pocer[] pocers) {
		this.pocers = pocers;
	}
	/**
	 * //玩家当前状态 0准备下注/或开始状态  1让牌     2下注 3全下    -1掉线托管  -2第二次拖/或者最后一次发牌掉线()    -3弃牌()
	 *
	 * @return
	 */
	public int getStatus() {
		return status;
	}

	/**
	 *
	 * //玩家当前状态 0准备下注/或开始状态  1让牌     2下注 3全下    -1掉线托管  -2第二次拖/或者最后一次发牌掉线()    -3弃牌()
	 * @param status
	 */
	public void setStatus(int status) {
		this.status = status;
	}
	public long getTime() {
		return time;
	}
	/**
	 * 玩家状态 1观看 2准备下一次进入  3游戏中 4坐下状态
	 *
	 * @param time
	 */
	public void setTime(long time) {
		this.time = time;
	}
	/**
	 * 玩家状态 1观看 2准备下一次进入  3游戏中 4坐下状态
	 *
	 * @return
	 */
	public int getType() {
		return type;
	}
	/**
	 * 玩家状态 1观看 2准备下一次进入  3游戏中 4坐下状态
	 *
	 * @param type
	 */
	public void setType(int type) {
		this.type = type;
	}
	/**
	 * 获取玩家座位编号
	 *
	 * @return
	 */
	public int getSize() {
		return size;
	}
	/**
	 * 设置玩家座位编号
	 *
	 * @param size
	 */
	public void setSize(int size) {
		this.size = size;
	}
	/**
	 * 已经下注的筹码
	 * @return
	 */
	public int getBetChouma() {
		return betChouma;
	}

	/**
	 * 已经下注的筹码
	 * @param betChouma
	 */
	public void setBetChouma(int betChouma) {
		this.betChouma = betChouma;
	}
	//下注状态
	/**
	 * 0 等待下注     1下注并且比上次betChouma有增加     2筹码没有增加
	 *
	 * @return
	 */
	public int getBetStatus() {
		return betStatus;
	}
	/**
	 * 0 等待下注     1下注并且比上次betChouma有增加     2筹码没有增加
	 *
	 * @param betStatus
	 */
	public void setBetStatus(int betStatus) {
		this.betStatus = betStatus;
	}

	/**
	 * 1:下注  2:跟注  3:加注  4:全下 5:让牌  6:弃牌 7托管  
	 *
	 * @return
	 */
	public int getClientStatus() {
		return clientStatus;
	}
	/**
	 * 1:下注  2:跟注  3:加注  4:全下 5:让牌  6:弃牌 7托管  
	 *
	 * @param clientStatus
	 */
	public void setClientStatus(int clientStatus) {
		this.clientStatus = clientStatus;
	}
	/**
	 * 下注筹码数 指的是最后一次下注的筹码数量
	 *
	 * @return
	 */
	public int getAnteNumber() {
		return anteNumber;
	}
	/**
	 * 下注筹码数 指的是最后一次下注的筹码数量
	 *
	 * @param anteNumber
	 */
	public void setAnteNumber(int anteNumber) {
		this.anteNumber = anteNumber;
	}
	public UserInfo getUserInfo() {
		return userInfo;
	}
	public void setUserInfo(UserInfo userInfo) {
		this.userInfo = userInfo;
	}
	public Pocer[] getZuidaPocers() {
		return zuidaPocers;
	}
	public void setZuidaPocers(Pocer[] zuidaPocers) {
		this.zuidaPocers = zuidaPocers;
	}
	public int getPocerType() {
		return pocerType;
	}
	public void setPocerType(int pocerType) {
		this.pocerType = pocerType;
	}
	public int getYq() {
		return yq;
	}
	public void setYq(int yq) {
		this.yq = yq;
	}
	/**
	 * 在线状态 1在线 -1 掉线做T掉处理
	 *
	 * @return
	 */
	public int getOnlinerType() {
		return onlinerType;
	}

	/**
	 * 在线状态 1在线 -1 掉线做T掉处理
	 *
	 * @param onlinerType
	 */
	public void setOnlinerType(int onlinerType) {
		this.onlinerType = onlinerType;
	}
	public int getLastChouma() {
		return lastChouma;
	}
	public void setLastChouma(int lastChouma) {
		this.lastChouma = lastChouma;
	}
	public int getChouchuStatus() {
		return chouchuStatus;
	}
	public void setChouchuStatus(int chouchuStatus) {
		this.chouchuStatus = chouchuStatus;
	}
	public int getYs() {
		return ys;
	}
	public void setYs(int ys) {
		this.ys = ys;
	}
	/**
	 * 本轮已经下了多少注
	 *
	 * @return
	 */
	public int getAnteCount() {
		return anteCount;
	}
	/**
	 * 本轮已经下了多少注
	 *
	 * @param anteCount
	 */
	public void setAnteCount(int anteCount) {
		this.anteCount = anteCount;
	}
	/**
	 * -1 表示非主动离开 ..其它表示主动离开
	 *
	 * @return
	 */
	public int getZdlk() {
		return zdlk;
	}
	/**
	 * -1 表示非主动离开 ..其它表示主动离开
	 *
	 * @param zdlk
	 */
	public void setZdlk(int zdlk) {
		this.zdlk = zdlk;
	}
}

